<!DOCTYPE html>
<html lang="en">

    <head><title>Oracle数据结构和逻辑结构，以及实例结构解析 &ndash; UxiaoTag的博客</title>
<meta name="description" content="一个蒟蒻无比的萌新.">

<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8"/>



<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css" integrity="sha512-1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMfw5BC1A==" crossorigin="anonymous" />


<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/academicons/1.9.1/css/academicons.min.css" integrity="sha512-b1ASx0WHgVFL5ZQhTgiPWX+68KjS38Jk87jg7pe+qC7q9YkEtFq0z7xCglv7qGIs/68d3mAp+StfC8WKC5SSAg==" crossorigin="anonymous" />


<link rel="stylesheet" href="https://juruoxiao.gitee.io/linux_work/css/palettes/base16-dark.css">
<link rel="stylesheet" href="https://juruoxiao.gitee.io/linux_work/css/risotto.css">
<link rel="stylesheet" href="https://juruoxiao.gitee.io/linux_work/css/custom.css">
</head>

    <body>
        <div class="page">

            <header class="page__header"><h1 class="page__logo"><a href="https://juruoxiao.gitee.io/linux_work" class="page__logo-inner">UxiaoTag的博客</a></h1>
<nav class="page__nav main-nav">
    <ul>
    
    
    <li class="main-nav__item"><a class="nav-main-item" href="https://juruoxiao.gitee.io/linux_work/about/" title="">About</a></li>
    
    <li class="main-nav__item"><a class="nav-main-item active" href="https://juruoxiao.gitee.io/linux_work/post/" title="Posts">Posts</a></li>
    
    </ul>
</nav>

</header>

            <section class="page__body">
    <header class="content__header">
        <h1>Oracle数据结构和逻辑结构，以及实例结构解析</h1>
    </header>
    <div class="content__body">
        <p>Oracle数据结构和逻辑结构，以及实例结构解析</p>
<h1 id="oracle结构体系">Oracle结构体系</h1>
<h4 id="oracle数据体系总共分为俩个部分一个是数据库部分特指存储数据相关对象物理文件第二个是是实例部分特指操作系统和管理的内存区">Oracle数据体系总共分为俩个部分，一个是数据库部分，特指存储数据相关对象物理文件。第二个是是实例部分，特指操作系统和管理的内存区</h4>
<h2 id="数据库">数据库</h2>
<h3 id="数据库物理存储结构">数据库物理存储结构</h3>
<h4 id="有以下文件控制文件数据文件临时文件重做日志文件">有以下文件：控制文件，数据文件，临时文件，重做日志文件。</h4>
<h3 id="控制文件">控制文件</h3>
<p>Orcale启动实例要通过加载控制文件确定数据文件，重做日志的路径，才能打开数据库。不仅还<strong>包括DBname,创建信息，表空间信息,日志文件信息，检查点信息等</strong>。控制文件记录了的内容不只是<strong>启动DB使用，在记录检查点相关信息，归档路径，备份信息过程，以及数据库结构修改等操作</strong>都需要同步到控制文件</p>
<p>控制文件是二进制文件，一般oracle自行维护。oracle一般会冗余三份并自行维护其一致性。冗余位置和冗余数量可以DBA指定。</p>
<blockquote>
<p>何为归档？</p>
<p>数据归档是识别非活动数据以及将其移出当前生产系统和数据库并移入长期存储系统的过程。归档数据往往是为了满足法规遵从性、提供历史参考或因为随着时间的推移能够提供分析价值而需要保存的信息。</p>
</blockquote>
<p>意外断电导致数据库控制文件丢失需要重建控制文件，这是<a href="https://blog.csdn.net/u010343795/article/details/79589854">链接</a></p>
<h3 id="数据文件">数据文件</h3>
<p>Oracle 的表空间是一个逻辑概念，Oracle数据库是由若干个表空间构成的。数据库对象在存储时必须存储在某个表空间中。一个表空间对应若干个数据文件，即一个表空间由一个或多个数据文件构成，但一个数据文件只能属于一个表空间。</p>
<blockquote>
<p>Oarcle 数据库真正存放数据的是数据文件，表空间（tablespaces）实际上是一个逻辑的概念，在物理上并不存在。</p>
</blockquote>
<h3 id="临时文件">临时文件</h3>
<p>临时表空间的文件，也可能是临时存在的对象。eg:大规模oracle数据集进行排序等操作时，可能会导致PGA内存区不足，所以就会拿磁盘当内存临时使用。这个表空间属于Nologging模式且RMAN不会备份临时比啊空间</p>
<h3 id="重做日志文件">重做日志文件</h3>
<p>重做日志文件顾名思义就是用于Redo的日志。</p>
<p>重做记录以循环的方式在SGA（系统全局区）区的重做日志高速缓存区中进行缓存，并且由后台进程LGWR写入到重做日志文件中。</p>
<p>ORACLE对数据库所做的修改首先保存在内存中，这样可以提高数据库的性能，因为在内存中的数据进行操作比磁盘中数据进行操作快的多，每隔一段时间（日志信息存放超过3秒）或满足特定条件（发生提交命令或日志缓冲区信息满1/3）就会启动LFWR进程将重做日志记录保存到重做日志文件中。</p>
<p>一个数据库默认会创建3个重做日志文件组，逐一写入，写完了会从覆盖最从前开始写。当前正在被LGWR进程写入的重做日志文件组中的重做日志文件成为“联机重做日志文件”（online redo log file）。</p>
<h3 id="数据库逻辑存储结构">数据库逻辑存储结构</h3>
<p>从小到大划分为：块，区，段，表空间：</p>
<h3 id="块">块</h3>
<p>逻辑存储结构最小单位</p>
<h3 id="区">区</h3>
<p>区（extent）。是一串连续的数据块data block，用来存放特定类型的数据</p>
<h3 id="段">段</h3>
<p>由多个区组成，用来存储数据块对象（database object）。如表，表的索引。每个段有且仅属于一个表空间（tablespace）</p>
<p>段不止是数据段，还有索引段，回滚段，临时段。</p>
<h3 id="表空间">表空间</h3>
<p>表空间（tablespace）是段的一个逻辑存储容器。一个oracle数据库必须拥有SYSTEM 和 SYSAUX 表空间。</p>
<p>SYSTEM表空间包含：</p>
<blockquote>
<p>数据块字典。</p>
</blockquote>
<blockquote>
<p>该数据库管理信息的表和视图。</p>
</blockquote>
<blockquote>
<p>已经被编译了的存储对象。如触发器、过程、包（triggers, procedures, and packages）</p>
</blockquote>
<p>以上内容和结构可以参考<a href="https://docs.oracle.com/cd/E11882_01/server.112/e40540/logical.htm#CNCPT302">oracle官方文档</a></p>
<h2 id="实例结构">实例结构</h2>
<h3 id="orcale最简单的搭建是由该图搭建的实例instance数据库database组成">orcale最简单的搭建是由该图搭建的实例（Instance）+数据库（database）组成</h3>
<p>实例其实是数据库启动时初始化的一组进程和内存结构。单机情况就是1实例对以db,在rac环境中，是多个实例对应数据库。</p>
<h3 id="实例内存结构">实例内存结构</h3>
<p>实例内存一般主要由SGA系统全局区+PGA用户全局区组成</p>
<h3 id="sga">SGA</h3>
<p>SGA 是一块共享的内存区域。当数据库实例启动时，SGA 的内存被自动分配；当数据库实例关闭时，SGA 内存被回收。 SGA 是占用内存最大的一个区域，同时也是影响数据库性能的重要因素。</p>
<p>主要由以下部分组成</p>
<h4 id="database-buffer-cache数据库缓冲区高速缓存">DataBase Buffer Cache（数据库缓冲区高速缓存）</h4>
<p>此高速缓存区域，用来存储从数据文件中读取到的数据块的镜像。是 Oracle 用来执行 SQL 的工作区域，当用户更新数据时，用户会话先会扫描缓冲区，再考虑使用硬盘。由 DB_CACHE_SIZE 参数设定。<strong>当存储区需要自由空间时，最近最少使用块将被移出，新数据块将在存储区代替它的位置</strong>。(这跟操作系统的cache是相关的)</p>
<h4 id="redo-log-buffer重做日志缓冲区">Redo Log Buffer（重做日志缓冲区）</h4>
<p>日志文件用于记录对数据库的更改，为了减少磁盘 IO，减少用户等待时间，数据库的修改操作信息要先写到日志缓冲区中，当日志缓冲区达到一定的限度时，会被日志写入进程 LGWR 写入磁盘中。</p>
<blockquote>
<p>顺带一提，上文中重做记录的循环缓存就是在这里。</p>
</blockquote>
<h4 id="shared-pool共享池">Shared Pool（共享池）</h4>
<p>这是统称，里面有很多子模块：</p>
<p>Library Cache（库高速缓存）：</p>
<p>Oracle 引入库缓存的目的是共享 SQL 代码。服务器进程执行 SQL 命令时，首先进入库缓存查找是否有相同的 SQL，如果有，就不再进行后续的编译处理，直接使用已经编译的 SQL 和执行计划。</p>
<p>Data Dictionary Cache（数据字典高速缓存）:
数据库对象的信息存储在数据字典表中，这些信息包括用户帐号数据、权限、数据文件名、段名、表结构及表说明等，当需要这些信息时，将读取数据字典表并且将返回的数据存储在数据字典缓存区中。数据字典缓存区通过 LRU 算法来管理。</p>
<h3 id="实例后台进程结构">实例后台进程结构：</h3>
<p><img src="https://img-blog.csdnimg.cn/76fd04762aba4d999953b865ed94c142.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDM3Nzk3Mw==,size_16,color_FFFFFF,t_70#pic_center" alt="外部引用图片"></p>
<p>一个个列出来</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@rac1 ~<span style="color:#f92672">]</span><span style="color:#75715e"># ps -ef|grep ora_</span>
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">7607</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 09:20 ?        00:01:03 ora_m003_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">7954</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 08:05 ?        00:01:18 ora_m000_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">8987</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:16 ora_pmon_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">8989</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_clmn_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">8991</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:26 ora_psp0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9029</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:05:21 ora_ipc0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9032</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">3</span> 7月16 ?       00:35:20 ora_vktm_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9037</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:15 ora_gen0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9039</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:05 ora_mman_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9045</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:01:07 ora_gen1_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9071</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:01:43 ora_diag_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9073</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_ofsd_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9082</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:01:37 ora_dbrm_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9089</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:02:35 ora_vkrm_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9091</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:12 ora_ping_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9094</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:11 ora_svcb_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9096</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:03 ora_acms_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9098</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:15 ora_pman_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9100</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">1</span> 7月16 ?       00:12:20 ora_dia0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9103</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:03:40 ora_lmon_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9105</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:03:16 ora_lmd0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9107</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:09:32 ora_lms0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9109</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:09:30 ora_lms1_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9114</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:02:42 ora_lmd1_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9119</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:10 ora_rms0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9137</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:04:26 ora_lmhb_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9144</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:06 ora_lck1_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9150</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:13 ora_dbw0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9152</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:10 ora_lgwr_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9154</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:01:15 ora_ckpt_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9159</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:02 ora_lg00_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9163</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_smon_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9171</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:01 ora_lg01_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9176</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:14 ora_smco_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9178</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:01 ora_reco_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9181</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_w000_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9183</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:08 ora_lreg_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9185</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_w001_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9187</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_pxmn_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9190</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:05 ora_rbal_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9192</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:14 ora_asmb_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9196</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:02:05 ora_fenc_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9205</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:01:01 ora_mmon_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9221</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:01:43 ora_mmnl_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9223</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:02 ora_d000_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9229</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:01 ora_s000_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9235</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:03:56 ora_imr0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9241</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">1</span> 7月16 ?       00:12:36 ora_gcr0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9250</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:01:11 ora_scm0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9277</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:36 ora_lck0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9286</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:06 ora_rsmn_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9288</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:02 ora_tmon_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9374</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:08 ora_mark_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9643</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:05 ora_tt00_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9651</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:01 ora_tt01_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9657</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:06 ora_tt02_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9689</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_w002_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9792</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_w003_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9810</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_gtx0_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9830</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:07 ora_rcbg_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9887</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_w004_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9910</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:01 ora_aqpc_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9914</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:02 ora_qm02_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9920</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:01:36 ora_qm05_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9928</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:02 ora_q002_orcl2
</span></span><span style="display:flex;"><span>oracle    <span style="color:#ae81ff">9959</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:17 ora_p000_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">10112</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:16 ora_p001_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">10119</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:13 ora_p002_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">10123</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:11 ora_p003_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">10127</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:10 ora_p004_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">10148</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:10 ora_p005_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">10150</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:10 ora_p006_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">10152</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:10 ora_p007_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">10275</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:03:14 ora_cjq0_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">10834</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_w005_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">10926</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:03:11 ora_m001_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">10933</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:03:14 ora_m002_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">11018</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:03:09 ora_m004_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">20252</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_w006_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">20257</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:04 ora_w007_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">21457</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 7月16 ?       00:00:02 ora_q003_orcl2
</span></span><span style="display:flex;"><span>oracle   <span style="color:#ae81ff">22061</span>     <span style="color:#ae81ff">1</span>  <span style="color:#ae81ff">0</span> 14:36 ?        00:00:00 ora_ppa7_orcl2
</span></span><span style="display:flex;"><span>root     <span style="color:#ae81ff">23959</span> <span style="color:#ae81ff">23975</span>  <span style="color:#ae81ff">0</span> 14:40 pts/0    00:00:00 grep --color<span style="color:#f92672">=</span>auto ora_
</span></span></code></pre></div><h4 id="pmon-进程监控进程">pmon 进程监控进程</h4>
<p>PMON 进程用于在用户进程出现故障时进行恢复，清除失效的用户进程，负责清理内存区域和释放该进程所使用的资源，如果会话不正常终止时，PMON 负责 Rollback 未提交的事务，释放资源；同时监控 Oracle 所有后台进程。</p>
<p>PMON 还周期性地检查调度进程和服务器进程的状态，如果已死，则重新启动（不包括有意删除的进程）。</p>
<h4 id="smon-系统监控进程">smon 系统监控进程</h4>
<p>当实例异常终止时，SMON 进程在实例启动时执行实例恢复，在实例恢复过程中，如果由于文件读取错误或所需文件处于脱机状态而导致某些异常终止的事务未被恢复，SMON 将在表空间或文件恢复联机状态后再次恢复这些事务。</p>
<p>SMON 还负责清理不再使用的临时段以及为数据字典管理的表空间合并相邻的可用数据扩展。</p>
<h4 id="dbwn-数据库写入进程">DBWn 数据库写入进程</h4>
<p>DBWn进程是负责 DataBase Buffer Cache（数据库缓冲区高速缓存）管理的一个 Oracle 后台进程，通过使用 LRU 算法来管理，保持内存中的数据块是最近使用的，使 I/O 最小，将脏数据写入到数据文件中。</p>
<p>DBWn 进程用于将数据库缓冲区的数据写入数据文件，是负责数据库缓冲区管理的一个后台进程，默认数量 1 个，最多可以有 10 个，由参数为 db_writer_processes 设置。</p>
<h4 id="lgwr-日志写入进程">LGWR 日志写入进程</h4>
<p>该进程将日志缓冲区写入磁盘上的一个日志文件，它是负责管理 Redo Log Buffer（重做日志缓冲区）的一个 Oracle 后台进程。</p>
<p>当事务提交时，被赋给一个系统修改号（SCN），它同事务日志项一起记录在日志中。LGWR 进程管理日志缓冲区，将数据库的更改写入日志文件，以便维护数据的一致性，并为数据丢失后进行恢复提供依据。Oracle 通过延迟写日志来优化 IO 操作，Oracle 会在以下 4 种情况触发 LGWR 进程写日志：
（1）在事务提交（COMMIT）时。
（2）每 3 秒钟，该进程最多休眠 3 秒钟。
（3）Redo log Buffer 占用达三分之一时。
（4）DBWn 进程将数据库缓冲区写入数据文件之前；</p>
<h4 id="ckpt-进程">CKPT 进程</h4>
<p>CKPT 进程负责通知 DBWn 和 LGWR 将脏数据写入磁盘，以及时消除因 DBWn 与 LGWR 延迟写所造成的数据不一致情况，确保内存中的数据块被规律地写入文件，并对数据库控制文件和数据文件进行更新同步（修改文件时间头部），以记录下当前的数据库结构和状态。</p>
<h4 id="reco-恢复进程">RECO 恢复进程</h4>
<p>RECO 进程是在具有分布式选项时所使用的一个进程，自动地解决在分布式事务中的故障，维持在分布式环境中的数据的一致性。</p>
<h4 id="arch-归档进程">ARCH 归档进程</h4>
<p>ARCH 进程用于管理归档日志文件，这个进程是可选的，当数据库运行在 archivelog 模式下时，这个进程就是必须的。所谓归档，就是将重做日志文件永久保存到归档日志文件中。归档日志文件和重做日志文件作用是一样的，只不过重做日志文件会不段被重写，而归档日志文件则保留了关于数据更改的完整的历史记录。</p>
<h4 id="lckn-锁进程">LCKn 锁进程</h4>
<p>LCKn 进程是在并行服务器环境下使用，用于实例间的封锁，最多可以有 10 个进程（LCK0，LCK1……，LCK9）。</p>
<p>里面还有一些不知道是什么进程，后续在做补充。</p>
    </div>
    <footer class="content__footer"></footer>

            </section>

            <section class="page__aside">
                <div class="aside__about">
<div class="aside__about">
    <img class="about__logo" src="https://juruoxiao.gitee.io/linux_work/images/rice.svg" alt="Logo">
<h1 class="about__title">UxiaoTag</h1>
<p class="about__description">一个蒟蒻无比的萌新.</p>
</div>


<ul class="aside__social-links">
    
    <li>
        <a href="https://github.com/q2516631454" rel="me" aria-label="GitHub" title="GitHub"><i class="fa-brands fa-github" aria-hidden="true"></i></a>&nbsp;
    </li>
    
    <li>
        <a href="mailto:2516631454@qq.com" rel="me" aria-label="Email" title="Email"><i class="fa-solid fa-envelope" aria-hidden="true"></i></a>&nbsp;
    </li>
    
</ul>





<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/sakana-widget@2.5.0/lib/sakana.min.css"
/>
<div id="sakana-widget"></div>
<script>
  function initSakanaWidget() {
    const takina = SakanaWidget.getCharacter('takina');
    takina.initialState = {
      ...takina.initialState,
      i: 0.01,
      d: 1,
    };
    SakanaWidget.registerCharacter('takina-slow', takina);
    new SakanaWidget({ character: 'takina-slow',controls:false}).mount('#sakana-widget');
  }
</script>
<script
  async
  onload="initSakanaWidget()"
  src="https://cdn.jsdelivr.net/npm/sakana-widget@2.5.0/lib/sakana.min.js"
></script>
</div>
                <hr>
                <div class="aside__content">
    <p>第2周：阅读《涂抹Oracle》第16-17章，熟悉Oracle体系结构，读后解析Oracle数据结构和逻辑结构，以及实例结构</p>
    
        <p>
            By UxiaoTag
            
        </p>
    

                </div>
            </section>

            <footer class="page__footer"><p>
    
    
    
    
    
    
      
    
      
    
    
    
</p>
<br /><br />
<p class="copyright">© 2021–2022 <a href="https://gitee.com/juruoxiao/linux_work">UxiaoTag</a></p>
<p class="advertisement">Powered by <a href="https://gohugo.io/">hugo</a> and <a href="https://github.com/joeroe/risotto">risotto</a>.</p>
</footer>

        </div>
    </body>

</html>
